#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Processes;
namespace Cephei.QL.Pricingengines.Forward
{
     // <summary> 
	// ! as described in Demeterfi, Derman, Kamal & Zou, "A Guide to Volatility and Variance Swaps", 1999  \ingroup forwardengines  \test returned variances verified against results from literature
	// </summary>
    [Guid ("85A3092C-F6F3-4396-A894-59DDDEA4CC30"),ComVisible(true)]
	public interface IReplicatingVarianceSwapEngine 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 IReplicatingVarianceSwapEngine Calculate {get;}
    }

    // <summary> 
	// ! as described in Demeterfi, Derman, Kamal & Zou, "A Guide to Volatility and Variance Swaps", 1999  \ingroup forwardengines  \test returned variances verified against results from literature Factory
	// </summary>
   	[ComVisible(true)]
    public interface IReplicatingVarianceSwapEngine_Factory // : Collection_Factory<IReplicatingVarianceSwapEngine, ICell<IReplicatingVarianceSwapEngine>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IReplicatingVarianceSwapEngine Create (Cephei.QL.Processes.IGeneralizedBlackScholesProcess process, Microsoft.FSharp.Core.FSharpOption<Double> dk, Microsoft.FSharp.Core.FSharpOption<Cephei.IVector<Double>> callStrikes, Microsoft.FSharp.Core.FSharpOption<Cephei.IVector<Double>> putStrikes);
    }
}

